package util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import bean.Empleado;

public class Conexion {

	private static String url = "";
	private static String usuario = "";
	private static String password = "";
	private static Connection cn = null;

	static {
		try {
			// registramos el driver para trabajar desde java Connection
			Class.forName("com.ibm.as400.access.AS400JDBCDriver");
		} catch (ClassNotFoundException ex) {
			System.out.println(ex);
		}
	}
	//conexion para obtener y listar las cias
	public static Connection obtenerConexionSpeed407() {

		Connection cn = null;
		try {
			String url = "jdbc:as400://192.168.1.4/SPEED407";
			cn = DriverManager.getConnection(url, usuario, password);

		} catch (SQLException ex) {
			System.out.println(ex);
		}
		return cn;
	}
	//conexion de prueba auditoria
	public static Connection obtenerConexionPRUEBA() {

		Connection cn = null;
		try {
			String url = "jdbc:as400://192.168.1.4/PRUEBA";
			cn = DriverManager.getConnection(url, "DParreno", "david2014");

		} catch (SQLException ex) {
			System.out.println(ex);
		}
		return cn;
	}
	//conexion para login
	public static Connection obtenerConexion(Empleado objEmpleado) {

		url = "jdbc:as400://192.168.1.4";
		usuario = objEmpleado.getStrUsuario();
		password = objEmpleado.getStrClave();
		try {

			cn = DriverManager.getConnection(url, usuario, password);

		} catch (SQLException ex) {
			System.out.println(ex);
		}
		return cn;
	}
	//conexion para login para elegir cia
	public static Connection obtenerConexion(Empleado objEmpleado, String cia) {
		url = "jdbc:as400://192.168.1.4/SPEED400" + cia;
		usuario = objEmpleado.getStrUsuario();
		password = objEmpleado.getStrClave();
		try {
			// obtener conexion
			cn = DriverManager.getConnection(url, usuario, password);

		} catch (SQLException ex) {
			System.out.println(ex);
		}
		return cn;
	}

	//conexion para operaciones
	public static Connection obtenerConexion() {

		try {
			if (cn.isClosed()) {
				System.out.println("esta cerrado");
				reconectar();
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return cn;
	}
	//reconecta 
	private static void reconectar() {
		try {
			System.out.println("reconectando");
			cn = DriverManager.getConnection(url, usuario, password);
		} catch (SQLException ex) {
			System.out.println(ex);
		}
	}
	//cierra conexion
	public static void desconectar() {
		try {
			System.out.println("cerrando");
			cn.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}
